View this file in a text         ____________
editor such as OPL.             /            \
Use the small font and         /              \
turn the status window         /  ___  ___  \
off.                           /  /      \  \
                               \  \_O//\\O_/  /
Use Ctrl-Menu to turn           \    /__\    /
the status window off.            \      / 
Use Shift-Psion-Z to zoom.         [[[]]]  
                                 \   [[]]   /
                                  \___/\___/
                  ooooO -OO- OooooĿ
                         Graph3a for Psion Series 3a      
                        <Version 1.1   November 1996>     
                   Gareth Wild, 53 Woodhouse Lane, Norden 
                   ROCHDALE, Lancashire, England OL12 7SD 
 <Scroll Down>      <Scroll Down>

**NEW to Version 1.1**

 Plot families of graphs
 Change trigonometrical units (use radians or degrees)
 Minor changes of 'Busy' messages and minor bug fixes

Graph3a is intended to emulate the speed and ease of use of Casio and Texas
Instruments graphical calculators. Cartesian(normal), polar and parametric
graphs can all be drawn. Zooming and tracing options are both available.
The main advantage is the ability to enter equations as they appear on paper
without the need to constantly think about inserting * and ** signs, the
computer does this for you.

eg for 2x-4x+1-4xsin(5x)

   you would enter: 2x2-4x+1-4xsin(5x)
   
   and not: 2*x**2-4*x+1-4*x*sin(5*x)

(See the Easy Equation Input section below for more information)

Help screens are  available to use at virtually any point in the program
by simply pressing the "Help" button. This function will not work if the
\APP\GRAPH3A\grafhelp.rsc file is not present.

These are the files that have been unzipped.
If they are not in the correct directories below you must copy them there.

File          Directory         Comments

Graf3a11.opa  \APP\          The main program
Grafhelp.rsc  \APP\GRAPH3A\  The help screens, can be deleted to free memory
Datafile.odb  \APP\GRAPH3A\  Database of example graphs, view with Psion-O
Graph3a.txt                  This file

<The following files are created by the program on your default drive>
Graph3a.ini   \APP\GRAPH3A\  Stores all preferences and graphs on exiting
Graph3a.reg   \APP\GRAPH3A\  Stores registration codes after you register

Only the application file Graf3a11.opa is essential for the running of the
program, all the rest are just support files and can be deleted to save
memory. The files can be copied to any local drive or C:\ and will be
accessed from there.

Memory Information:
Graf3a11.opa is about 33K long and uses about 15K of memory whilst running.

Installation:

1) Install the application in the usual manner by pressing Psion-I and
   selecting Graf3a11.opa on the correct drive at the dialog.
   
2) You may find it convenient to assign a button to the Graph application
   so that you can jump to it quickly from other applications.
   This can be done by placing the cursor on the Graph application on the
   "Systems" screen, pressing Psion-A and then choosing an appropriate
   combination of keys (such as Control-Calc).
   
Quick note for those upgrading from version 1.0:

1. Delete \APP\GRAPH3A\Graph3a.ini before you install version 1.1, otherwise
   you'll generate a 'field not found' error on entering for the first time
2. Registered users: you don't have to type your codes in again
3. Default ranges is now Psion-Shift-D not Psion-D
4. Rectangular graphs are now renamed cartesian graphs-the correct term

    
Quick Glossary of Keys:

Tab............Used to edit the graph in the current mode
               Also used to input your own values during tracing
 (diamond)....Changes graph mode
Esc............Terminates graphing, printing, zooming and tracing etc.
               Also can be used to exit dialog boxes and the main application
               if nothing is running.
Delete.........Clears graph, needs confirmation
Menu...........Brings up menus
Help...........Brings up relevant help screens
Psion-O........Retrieve/delete saved graphs
Psion-S........Save current graph for future recall
Psion-N........Edits the graph in the current mode (same as pressing Tab)
Psion-Shift-S..Standard graphs ( sin(x),x,log(x) etc. )
Psion-M........Changes graph mode (same as pressing )
Psion-F........Family On/Off
Psion-T........Trace
Psion-Z........Zoom
Psion-Shift-R..Redraws graph (same as pressing Tab, Enter)
Psion-C........Clears graph (same as pressing Delete, Delete)
Psion-G........Register (disappears in registered versions)
Psion-R........Change ranges manually
Psion-Shift-D..Defaults ranges
Psion-Shift-B..Basic ranges
Psion-Shift-T..Trig ranges
Psion-Q........Set preferences
Psion-P........Print graph
Psion-D........Use degrees/radians
Psion-A........About Graph3a
Psion-Shift-X..Exit,lose changes
Psion-X........Exit (surprising..eh?)

First Steps:(Tutorial)

Enter the application by pressing Enter when Graph3a is highlighted on the
"Systems" screen.

The first thing that should appear is a box stating that this is an
unregistered version. This is the nag screen; it will appear every time you
open or exit Graph3a, and every 20 minutes when Graph3a is open.
Press Enter or Esc.

You can now enter your first graph.

Press Tab or Psion-N, this brings up a dialog where you can enter a graph
as a function of x. Y=X2-x-8 is shown (ie Y=X-x-8). You can type in your
own graph or just leave this as it is.
The 'Speed' line sets the speed of graphing from 1 (slowest) to 20 (fastest)
(graphing on 1 takes about 20 secs but only 1 sec when on 20). This is
originally set to 5 but you can change it. The graph plots less points on
higher speeds, so the look of the graph will be sacrificed for a quicker plot

Press Enter.
The graph will be drawn.

Try out various functions on the menus such as the zoom or trace options.

Terminate any processes you may be in by pressing Esc.

Press Psion-Shift-D to reset to the default ranges.

Try changing the graph mode to polar by pressing Psion-M and selecting polar
before completing the dialog by pressing Enter.

Press Menu. Notice that the Psion-N option has changed from "New Cartesian
Graph" to "New Polar Graph". Highlight this and press Enter.

A similar dialog appears to that for a cartesian graph. Equations must be
typed in as a function of i. The Min and Max lines are the minimum and
maximum values of i to be plotted. The pitch is how often points are to be
plotted, the smaller this is the more accurate the graph, but the slower it
is to plot. The graph of r=8sin(3i) is highlighted.

Press Enter.

The polar graph will have been drawn.

Press Psion-C to clear the polar graph.

Press the  (diamond) key once. This is an alternative to using the Psion-M
option and simply cycles through the graph modes with consecutive presses.

Press Tab or Psion-N to view the Parametric graph dialog. The equations must
be entered as functions of t. Min and Max lines are the minimum and maximum
values of t to be plotted. The pitch dictates how often points are to be
plotted within these values. Change the 'Max' value to 4pi and the 'Pitch'
value to pi/18.

Press Enter to plot the Parametric graph.

Press Psion-Q to have a look through the 'Set Preferences' option.
Try playing around with the various options, the definitions of which can be
found in the list of functions below.
  
If you have a parallel printer you can use the 'Print Graph' option, although
unregistered versions of the program only allow 5 print credits.

Press Psion-F to turn Family On.
Press Psion-Shift-D to set default ranges and set the graph mode
to Cartesian
Press Tab
You will see a new set of options has been added to the New Graph dialog.
Type in (x+1)(x-k) on the Graph Y= line.
Set speed to 5
Set k minimum to 1
Set k maximum to 5
Set k pitch to 1
Press Enter
The following graphs will be drawn in order:
Y=(x+1)(x-1), Y=(x+1)(x-2), Y=(x+1)(x-3), Y=(x+1)(x-4), Y=(x+1)(x-5)

Press Psion-T to trace.
Using the up and down arrow keys you can cycle between the 4 graphs


Aswell as the final graphs, in each mode, being saved on exiting; you can
save an indefinite number of graphs by pressing Psion-S when you have just
entered them. This stores them in \APP\GRAPH3A\DATAFILE.ODB on your default
disk.
These graphs can be retrieved or deleted by pressing Psion-O and browsing
through the datafile. Some information is stored about the speed or pitch of
the graph saved, however ranges, grid on/off, family on/off etc. are NOT
saved. This is to save memory.

MENUS

"File" Menu

1) "Open datafile": (Psion-O)
   Retrieve/delete saved graphs.

2) "Save to datafile": (Psion-S)
   Saves the current graph to the datafile \APP\GRAPH3A\DATAFILE.ODB. Details
   of speed, pitch etc are stored along with the graph.

"Graph" Menu

1) "New ** Graph": (Psion-N) [where ** is Cartesian, Polar or Parametric]
   This option can also be accessed by pressing Tab in the program.
   (See Easy Equation Input section below for details on syntax)

2) "Standard Graphs": (Psion-Shift-S)
   Select from a range of standard cartesian graphs in the dialog.
   The ranges, speed and mode are reset to the correct values if needed.

3) "Graph Mode": (Psion-M)
   (The  (diamond) key can also be used to toggle between graph modes)
   Chooses between Cartesian, Polar and Parametric graphs. A confirmatory
   message appears in the bottom left hand corner when a new graph mode has
   been selected. Pressing Esc in this dialog exits the dialog and retains
   the old graph mode.

4) "Family On/Off": (Psion-F)
   Used to toggle between plotting single and families of graphs.
   When Family is set On, until you turn it off, families of graphs can be
   drawn using the usual Tab or Psion-N to input them.
   Graphs have a common constant k, which starts at a minimum value set by
   you and then draws as many graphs has you have told it to.
   All you do is:
   1. Press Tab to input a family
   2. Input an equation with the usual variable and k as a constant.
   3. Set the speed or pitch as normal
   4. Set a minimum value for k
   5. Set a maximum value for k
   6. Set a pitch for k - this is the step size
   
   eg Y=kx+k, k min=2, k max=4 ,k pitch=1
      draws Y=2x+2, Y=3x+3 and Y=4x+4
      
      it is written down in the top left hand box as:
      Graph Y=kx+k;k=2,4,1
      
NB remember to turn Family Off and edit out any constants (k) when you want
   to plot single graphs again!
   
"Tools" Menu

1) "Trace":(Psion-T)
   Used to find values along the curve of a graph. Values appear in the
   bottom left hand box. If the cross-hairs are not shown on the current
   ranges a small box appears with arrow(s) in it. These arrows give a
   rough indication of where the cross-hairs are outside the ranges.
   The following keys apply:
   
   Left/Right............change value of X, I or T (depends on current mode)
   Ctrl-Left/Ctrl-Right..as above but in greater bounds
   Up/Down...............toggle between graphs (Family On only)
   Home..................Goes directly to the minimum value
   End...................Goes directly to the maximum value
   Tab...................Enter your own value
   Esc...................terminates tracing
   
   If the graph doesn't exist eg sqr(-2) or has an asymptote eg tan(pi/2)
   then this will appear in the bottom left hand box. Your own asymptote
   detection value can be input in the 'Set Preferences' option.
   
2) "Zoom":(Psion-Z)
   A way of zooming in on a portion of the graph. Use the arrow keys to move
   the cross-hairs; Psion-arrow key moves faster. Press Enter where you want
   a corner of the box and then expand it using the arrow keys. Pressing
   Enter a second time redraws the portion of the graph within the Zoom box
   at greater magnification. Pressing Esc at any time will terminate the
   zoom function.

3) "Redraw":(Psion-Shift-R)
   Redraws the last graph plotted in the current graph mode.
   (The same effect can be achieved by pressing Tab then Enter)

4) "Clear":(Psion-C)
   Clears the graph(s) and redraws the axis and grid (if turned on).


"Register" Menu
1) "Register":(Psion-G)
   Allows the registration of this piece of software by the typing in of a
   couple of simple codes. Registration gets rid of all the nag screens and
   gives the user unlimited print credits, aswell as free future upgrades.
   This menu item and it's hot key disappear in the registered version.
   To obtain the codes send 5, $10 or the equivalent in your currency to:
   
   Gareth Wild
   53 Woodhouse Lane
   Norden
   ROCHDALE
   Lancashire
   England
   OL12 7SD
   
   Please state your name clearly at the end of any correspondence. This is
   because the codes will be unique to you and your name will flash up very
   briefly at the start of the program and appear in the 'About' box.
   
   Also until April 1997 you can use the email and snail-mail address below:
   Please don't send correspondence to this address after April 1997 as I
   won't be there!
                                                     ''~''
                                                    ( o o )
   .oooO(_)Oooo.Ŀ
    Gareth Wild  (third year medical student)                        
    email: gw4@st-and.ac.uk                     Author of: Graph3a   
     post: St.Regulus Hall, Queens Gardens                 GWmaths   
           ST.ANDREWS ,Fife KY16 9TQ            .oooO                
    phone: (01334) 465000 ext. 4765             (   )   Oooo.        
   \ ((   )
                                                   \_)    ) /
                                                         (_/
"Range" Menu

1) "Range": (Psion-R)
   Allows the user to input their own graph ranges. Xmin and Xmax are the
   minimum and maximum values of X respectively. Xscl is the value of the
   distance between the incremental marks on the X-axis. Ymin, Ymax and
   Yscl are the Y-axis equivalents.
   If Enter is pressed in this dialog the axes are redrawn.
   Inputs can be in the form 2pi for 2*pi etc. as in the "New Graph" dialog.
   
2) "Default Ranges": (Psion-Shift-D)
   Sets the standard -10<X<10 and -10<Y<10 values with a scale on each axis
   of 1.
   
3) "Basic Ranges": (Psion-Shift-B)
   Sets the standard trigonometrical ranges of -10<X<10 and -5.8<Y<5.8
   Xscl is 1 and Yscl is 1. This option will make a circle look like a
   circle (ie not stretched) or Y=X look at 45 to the axes.
   
4) "Trig Ranges": (Psion-Shift-T)
   Sets the standard trigonometrical ranges of
   -2pi<X<2pi and -1.2<Y<1.2 (if using radians)
   -360<X<360 and -1.2<Y<1.2 (if using degrees)
   Xscl is pi/4 (or 45 if using degrees) and Yscl is 0.2
   
"Special" Menu

1) "Set Preferences": (Psion-Q)
   'Plot'-Curve........joins up all plotted points to form a curve
         -Points only..doesn't join up plotted points
   'Grid'-Turns the background grid on and off.
   'Detect Asymptote at'-the value at which the application will record an
         asymptote. Reduce this figure if you are getting vertical/horizontal
         lines where there are meant to be asymptotes. Increase this figure
         if parts of your graph begin to be drawn as dots (and the Plot
         option is not set to 'Points only')
   'Error beep'-Turns the error beep on/off.

2) "Print Graph": (Psion-P)
   Prints the contents of the "Graph" screen to an attached parallel printer.
   NB the background grid is not printed.
   The unregistered version has just 5 print credits but you can print as
   many times as you like after registering.
   A bar in the bottom left of the screen shows how the print is proceeding
   and regular messages appear displaying the percentage of the screen
   completed.
   The spacing from the left option is originally set to 47mm. This will
   centralise a printout on an A4 sheet. If spacing from left option is set
   too large the printer will print as much of the "Graph" screen as possible
   but inevitably some of the right of the screen will be cut off. Graph3a
   can not be exited when printing is in progress. Printing may be terminated
   at any time by pressing Esc and then confirming the choice to abort the
   print. If a print has been aborted, please clear the memory buffer on your
   printer by turning it off and on.
   If you have a serial printer or for some reason you can't get a print out
   using this 'Print' command then use Psion-Shift-Control-S to capture the
   screen shot as screen.pic in the root directory of your default drive.
   Then use one of the many bitmap editors presently available, such as DRAW
   by Rick Andrews, to print your graph.
   
3) "Use degrees/radians": (Psion-D)
   Most of the time when you're plotting mathematical graphs you want to use
   radians. However, you may occasionally want to plot in degrees.
   In Graph3a version 1.0 if you wanted to do this you would have to use the
   RAD function ie
   
   Y=sin(x) (x in radians)  ----->   Y=sin(rad(x)) (x in degrees)
   
   This is no longer the case in version 1.1
   If you want to input a trig graph in degrees, just press Psion-D
   A 'Using degrees now' message will appear and you just type in the graph
   as normal. The computer will add the RAD command to the equation in its
   own memory, and the outcome is the required graph.
   
   NB some weird graphs can be produced if you think you are working in
      radians but are still in 'Using degrees' mode in Graph3a.
      Always make sure you are using the correct trig units.
   
4) "About": (Psion-A)
   Displays information about the author and the version code.
   In the unregistered version this appears whenever the application is
   opened of closed, or when 20 minutes have elapsed.
   
5) "Exit,lose changes": (Psion-Shift-X)
   Exits the program and keeps the ranges, graphs etc. shown at start up and
   doesn't save the present settings.
   
6) "Exit": (Psion-X)
   Exits the program and save the present settings.
   Exiting can also be done from the 'System' screen, if the program is not
   busy, by pressing Delete on the highlighted Graph3a name, or by pressing
   Esc in the main body of the program (both cases require a confirmation and
   will save the present settings).


Easy Equation Input:

This application uses a simple method of equation input.
You can type in equations with or without * and **.
Equations may be written in upper or lower case letters:
eg 2SIN(3X), 2*sin(3*x) and 2Sin(3*X) are all equivalent

X would be written as X3 (or X**3)
X would be written as X2 (or X**2)

So 3X+4X+9X+1 could be written as:   3X3+4X2+9X+1
                                    or 3*X**3+4*X**2+9*X+1
                                    
I think is easy to see which one is more simple to type and easier to read.

The syntax for functions is the same as in the calculator eg COS(X), SQR(X)
(ie you must put the expression to be executed by the function in brackets)
cosx, sin3x etc. are NOT valid expressions

Graph3a will execute equations with multiple brackets eg

(x+1)x(x-1)(x-2) ..is a valid expression
4(2x-1)2 ..........is a valid expression (ie 4(2x-1))

If you put letters together and they are not interpreted as a function then
Graph3a will multiply them eg

xxx .............executed as x*x*x
ii ..............executed as i*i

If you keep getting an 'Unexpected name' error message on an equation you
really want to enter, type it in long hand ie with * and **.


Things to Note:

The application uses Calc memories M7, M8 and M9 in the calculation of graphs
and during tracing. The M6 memory is also used if you plot families of graphs
Don't store information in these memories as it will be overwritten the next
time Graph3a is used.

It is possible to terminate graphing at any point by pressing the Esc key.

As the computer stores key presses in its buffer, if you have kept clicking
on the arrow keys on the "Trace" function and then take your finger off the
button the cross-hairs will continue moving as the computer catches up with
the calculation.

Vertical/horizontal asymtotes are often seen as vertical/horizontal lines.
To remove these play about with 'Pitch' value or 'Speed' values
ie when drawing Y=tan(x) use a low 'Speed'.
You can achieve the same effect by reducing the size of the 'Detect Asymptote
at' line in the 'Set Preferences' option.

It is not possible to bring up a permanent status window by pressing
Control-Menu, however, a temporary status window may be brought up using
Psion-Menu.

Trouble Shooting:

Q. "I've typed in COSX to draw the cosine of x but get an "Unexpected Name"
    error. What am I doing wrong?"
A. "All functions should be entered as they appear in the calculator (with
    brackets)
    eg COS(X) for cosine of x, pi for 3.14159..., ln(x) for the natural log
       of x etc."

Q. "Parts of my graphs are plotted as points when I've not chosen 'Plot
    points only'. How do I prevent this?"
A. "Your 'Detect Asymptote at:' value (found in the 'Set Preferences' option)
    is set too low. Increase it to about 1000"
    
Q. "There are vertical/horizontal lines on the graph where there should be
    asymptotes. How do I get rid of these?"
A. "Reduce the Pitch (or Speed, if in cartesian mode) of the graph. Also
    reduce the 'Detect Asymptote at' value in the 'Set Preferences' option."
    
Q. "When I've aborted a printout, the next graph to be printed has a load of
    weird characters and squiggles printed before it. How do I stop this from
    happening?"
A. "You have not cleared the printer's buffer after aborting the graph, this
    means that there are still bits of redundant information present.
    Resolve this by turning the printer off and on after aborting a graph."
    
Q. "I've tried to draw the graph Y=sin(x) but it looks all squashed up and
    skew. What have I done wrong?"
A. "The most probable explanation is that you have ranges set for a DEGREES
    trig graph but have changed to using RADIANS. Either go back to using
    DEGREES or re-edit you ranges to fit the RADIAN graph"
    
Q. "I've tried to draw the graph Y=sin(x) but it looks all squashed or
    doesn't look like it's been plotted at all. What have I done wrong?"
A. "The most probable explanation is that you have ranges set for a RADIANS
    trig graph but have changed to using DEGREES. Either go back to using
    RADIANS or re-edit you ranges to fit the DEGREE graph"
    
Thanks to:
My beta testers Marcus Radburn-Smith and my brother Leon for all their help
and suggestions.
Also thanks to John Boyce for his JBbox macro that helped draw the little
graphics in this text file.

Legal Bit:
This program comes with no warranty of any kind.
Reverse translation of this program is prohibited.
Graph3a is protected against reverse translation.
Bug reports to the address at the start of this file.
